<?php

namespace App\Models\Admin;

use App\admin\Service\OA;
use App\Jobs\Fun;
use App\Models\User\UsergongchangModel;
use App\Models\User\UserGongsiModel;

/**
 * This is the model class for table "users_companys".
 * @property int10unsigned id
 * @property int10unsigned uid    用户UID
 * @property tinyint1unsigned cate     弃用     企业类型：1仅工厂，2仅公司，3公司含工厂
 * @property tinyint3unsigned facType    工厂类型，对接category的ID==1，无工厂默认０
 * @property varchar100 legal_name    法人姓名
 * @property tinyint1unsigned legal_sex    法人性别：1男，2女
 * @property varchar32 legal_mobile    法人常用手机号码
 * @property varchar20 legal_idcard    法人身份证号码
 * @property text legal_idcard_imgs    法人身份证上传：正面、反面、手持正面，|符号隔开
 * @property varchar100 com_name    企业名称
 * @property varchar20 com_tel    公司座机
 * @property varchar20 com_fax    公司传真
 * @property varchar255 com_address    公司地址
 * @property mediumint8unsigned com_city    公司所在地，省市区
 * @property tinyint3unsigned cus_like    客户满意度，百分比
 * @property tinyint3unsigned quality    品质合格率，百分比
 * @property int3unsigned pact    合同履行率，百分比
 * @property text param    工厂额外参数：
 * 年产量，万件：output
 * 送货车辆，俩：truck
 * 整件：piece
 * 捆包流：bale
 * 单件流：single
 * 裁剪：cut
 * 后道：back
 * 工厂总人数，人：total
 * @property text param2    公司额外参数：
 * 公司规模，平方：scale
 * 公司销售额，万元：totalSale
 * 年销售额，万元：annualSale
 * 送货车辆，辆：truck
 * 品牌：brand
 * @property varchar255 out_type    业务类型，对接category的ID，公司109，工厂108，用||隔开
 * @property int2 years    公司年限 1=>1年内 2=>1-3年 3=>3-5年 5年
 * @property varchar10 age_range    年龄段几岁到几岁，中间英文逗号隔开
 * @property text detail    公司简介
 * @property varchar15 lat    地图坐标经度
 * @property varchar15 lng    地图坐标纬度
 * @property int10unsigned created_at
 * @property int10unsigned updated_at
 * @property tinyint3unsigned type    1表示公司信息  2表示工厂信息
 * @property tinyint3unsigned shenhe    0表示没有审核,其它数字表示审核通过时间
 * @property int10unsigned visible    0表示隐藏,1表示显示,和功能开关对应
 */
class CompanyModel extends BaseModel
{
    /**
     * 企业信息
     */

    protected $table = 'users_companys_delete';
    protected $fillable = [
        'id', 'uid', 'cate', 'facType',
        //法人信息
        'legal_name', 'legal_sex', 'legal_mobile', 'legal_idcard', 'legal_idcard_imgs',
        //企业信息
        'com_name', 'com_tel', 'com_fax', 'com_address', 'com_city',
        'cus_like', 'quality', 'pact', 'param', 'param2',
        'out_type', 'age_range', 'detail', 'lat', 'lng',
        'type', 'shenhe', 'visible',
        'created_at', 'updated_at',
    ];

    const type_gongsi = 1;
    const type_gongchang = 2;
    const type_yingpin = 3;


    const shenhe_null = 100001;
    const shenhe_no = 0;
    const shenhe_yes = 1;
    const shenhe_jujue = 2;


    public static function toShenhe($status = null)
    {
        $list = [
            self::shenhe_yes => '通过',
            self::shenhe_jujue => '拒绝',
            self::shenhe_no => '未审核',
        ];
        if ($status === null) {
            return $list;
        }
        return isset($list[$status]) ? $list[$status] : '';
    }



    /**
     * cate 企业类型：1仅工厂，2仅公司，3公司含工厂
     * facType 工厂类型，对接category的ID==1，无工厂默认０
     * legal_name 法人姓名
     * legal_sex 法人性别
     * legal_mobile 法人手机号码
     * legal_idcard 法人身份证号码
     * legal_idcard_imgs 法人身份证号码正面、侧面、手持正面
     * com_name 公司名称
     * com_tel 公司座机
     * com_fax 公司传真
     * com_address 公司地址
     * com_city 公司所在地，省市区
     * cus_like 客户满意度，百分比
     * quality 品质合格率，百分比
     * pact 合同履行率，百分比
     * param 工厂额外参数：
     *      年产量，万件：output
     * 送货车辆，俩：truck
     * 整件：piece
     * 捆包流：bale
     * 单件流：single
     * 裁剪：cut
     * 后道：back
     * 工厂总人数，人：total
     * param2 公司额外参数：
     *      公司规模，平方：scale
     * 公司销售额，万元：totalSale
     * 年销售额，万元：yearSale
     * 送货车辆，辆：truck
     * 品牌：brand
     * out_type 业务类型，对接category的ID，公司109，工厂108
     * age_range 年龄段几岁到几岁，中间英文逗号隔开
     */



    /**
     * 审核状态
     * $type=is_company  is_factory   is_yingpin
     */
    public static function getShenhe($type, $uid)
    {
        if ($type == 'is_company') {
            $one = UserGongsiModel::where([
                'uid' => $uid
            ])->select(['shenhe'])->first();
            if (!$one) {
                return self::shenhe_null;
            } else {
                return $one->shenhe;
            }

        } elseif ($type == 'is_factory') {
             $one = UsergongchangModel::where([
                'uid' => $uid
            ])->select(['shenhe'])->first();
            if (!$one) {
                return self::shenhe_null;
            } else {
                return $one->shenhe;
            }

        } elseif ($type == 'is_yingpin') {

            return StaffModel::getshenhe($uid);
        } else {
            return false;
        }
    }








    /**
     * 计算公司和工厂的距离
     * 返回[
     *  'code'=>0,表示成功
     * 'msg'=>如果code为0,这里是返回的距离,如果code非0,这里表示错误信息
     * ]
     */
    public static function getdistance($gongsi, $gongchang)
    {
        $gongsiziliao = OA::$user->getComPanyVal(CompanyModel::type_gongsi, $gongsi);
        $gongchangziliao = OA::$user->getComPanyVal(CompanyModel::type_gongchang, $gongchang);
        //  var_dump($gongsiziliao,$gongsi);exit;
        /**
         * [comCity] => 河南省新乡市红旗区洪门镇新乡市农牧局国贸大厦
         * [com_address] => 杭州某地
         * [com_name] => 美策公司
         * [visible] => 1
         * [shenhe] => 1
         * [position] => {"P":35.302967189239865,"Q":113.92299300044772,"lng":113.922993,"lat":35.302967,"zoom":12}
         **/
        /**
         * 公司和工厂相距的距离
         */
        $distance = null;
        $gongsicomCity = '';
        $gongsi_lng = null;
        $gongsi_lat = null;
        $gongchang_lng = null;
        $gongchang_lat = null;
        if ($gongsiziliao && isset($gongsiziliao['position']) && $gongsiziliao['position'] !== '') {
            $post = json_decode($gongsiziliao['position'], true);
            $gongsi_lng = $post['lng'];
            $gongsi_lat = $post['lat'];
            $gongsicomCity = $gongsiziliao['comCity'];
        } else {
            return [
                'code' => 1,
                'msg' => '公司资料错误,可能未审核;',
                'gongsicomCity' => $gongsicomCity
            ];
        }
        if ($gongchangziliao && isset($gongchangziliao['position']) && $gongchangziliao['position'] !== '') {
            $post = json_decode($gongchangziliao['position'], true);
            $gongchang_lng = $post['lng'];
            $gongchang_lat = $post['lat'];
        } else {
            return [
                'code' => 1,
                'msg' => '工厂资料错误,可能未审核',
                'gongsicomCity' => $gongsicomCity
            ];
        }

        if ($gongsi_lng == null || $gongsi_lat == null) {
            return [
                'code' => 1,
                'msg' => '公司资料错误,可能未审核',
                'gongsicomCity' => $gongsicomCity
            ];
        } elseif ($gongchang_lng == null || $gongchang_lat == null) {
            return [
                'code' => 1,
                'msg' => '工厂资料错误,可能未审核',
                'gongsicomCity' => $gongsicomCity
            ];
        }

      //  print_r($gongchangziliao);exit;
        if (!$gongchangziliao || !$gongchangziliao['visible']
            || $gongchangziliao['shenhe'] != CompanyModel::shenhe_yes) {
            return [
                'code' => 1,
                'msg' => '工厂功能未启用,或者未审核',
                'gongsicomCity' => $gongsicomCity
            ];
        }


        /*
        $gongsi_lng=null;
        $gongsi_lat=null;
        $gongchang_lng=null;
        $gongchang_lat=null;
        */


        return [
            'code' => 0,
            'msg' => Fun::getdistance($gongsi_lng, $gongsi_lat, $gongchang_lng, $gongchang_lat),
            'gongsicomCity' => $gongsicomCity
        ];

    }


}